An individual difference of injector or a dispersion of valve timing of an intake/exhaust valve may cause the dispersion in rotation speed of each cylinder. JP-6-50077B shows the fuel injection amount is corrected in order to average the rotation speed of each cylinder by detecting the variation in rotation speed (a rotation angle speed). However, this correction of the fuel injection amount is conducted only while the engine is stable, such as at idle. That is, while the engine is running at various speed, the dispersion in rotation speed between cylinders can not be corrected, so that the emission may increases and the drivability may be deteriorated.
JP-8-218924A shows that two filters filter the rotation speed signal in different frequencies. At least two stable operation values, and target stable operation values which inherently depend on the frequencies, and a control deviation of a natural frequency are detected. Specifically, a band-pass filter (BPF) of which center frequency is a camshaft frequency, a crankshaft frequency, and one-half of ignition frequency is used. The rotation speed signal is inputted into the band-pass filter. Based on the filter output, the control deviations are totalized and the engine output is controlled based on the totalized value. When the dispersion in the crankshaft speed is arisen between cylinders, this dispersion is calculated as a control deviation to determine whether the crankshaft speed tends to be high or low in relative view of every cylinder. The fuel injection amount is adjusted to reduce the dispersion in crankshaft speed between cylinders. However, the absolute deviation relative to the ideal value cannot be obtained. Hence, the combustion condition in each cylinder is not appropriately controlled. For example, when the crankshaft speed with respect to every cylinder deviates from the ideal speed in the same direction, the appropriate control is hardly performed.